home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / dev / e / capus2.lha / capus2 / CxXref / Sources / CxXrefCX.e < prev    next >
Encoding:
Text File  |  1995-03-24  |  2.3 KB  |  91 lines

  1. /*********************
  2.  * Def Commodities
  3.  *********************/
  4. CONST EVT_HOTKEY_CXREF=1
  5. CONST EVT_HOTKEY_GUIDE=2
  6. DEF my_newbroker:PTR TO newbroker
  7. DEF broker_mp:PTR TO mp
  8. DEF broker,filter,sender,translate
  9. DEF cxsigflag
  10. DEF hotkey[80]:STRING
  11. DEF hotkeyguide[80]:STRING
  12. DEF cxpri=0
  13. /*"cxFilter(d:LONG)"*/
  14. PROC cxFilter(d:LONG) 
  15.     DEF r=NIL
  16.     r:=CreateCxObj(CX_FILTER,d,NIL)
  17.     RETURN r
  18. ENDPROC
  19. /**/
  20. /*"cxSender(port:LONG,id:LONG)"*/
  21. PROC cxSender(port:LONG,id:LONG) 
  22.     DEF r=NIL
  23.     r:=CreateCxObj(CX_SEND,port,id)
  24.     RETURN r
  25. ENDPROC
  26. /**/
  27. /*"cxTranslate(ie:LONG)"*/
  28. PROC cxTranslate(ie:LONG) 
  29.     DEF r=NIL
  30.     r:=CreateCxObj(CX_TRANSLATE,ie,NIL)
  31.     RETURN r
  32. ENDPROC
  33. /**/
  34. /*"p_InitCx()"*/
  35. PROC p_InitCx() HANDLE 
  36.     DEF errorcx=NIL
  37.     DEF txt[80]:STRING
  38.     dWriteF(['p_InitCx()\n'],0)
  39.     StringF(txt,'CxXref (\s/\s)',hotkey,hotkeyguide)
  40.     /*=== Initialisation de la commodité ===*/
  41.     my_newbroker:=[NB_VERSION,0,
  42.                    'CxXref',
  43.                    title_req,
  44.                    txt,
  45.                    NBU_UNIQUE,
  46.                    COF_SHOW_HIDE,
  47.                    0,0,NIL,0]:newbroker
  48.     IF (broker_mp:=CreateMsgPort())=NIL THEN Raise(ER_PORT)
  49.     my_newbroker.port:=broker_mp
  50.     cxsigflag:=Shl(1,broker_mp.sigbit)
  51.     my_newbroker.pri:=cxpri
  52.     IF (broker:=CxBroker(my_newbroker,NIL))=NIL THEN Raise(ER_CX)
  53.     /* HotKey CxXref */
  54.     filter:=cxFilter(hotkey)
  55.     IF (errorcx:=CxObjError(filter))<>0 THEN Raise(ER_CX)
  56.     AttachCxObj(broker,filter)
  57.     sender:=cxSender(broker_mp,EVT_HOTKEY_CXREF)
  58.     AttachCxObj(filter,sender)
  59.     translate:=cxTranslate(NIL)
  60.     AttachCxObj(filter,translate)
  61.     IF (errorcx:=CxObjError(filter))=0
  62.         ActivateCxObj(broker,1)
  63.     ELSE
  64.         Raise(ER_CX)
  65.     ENDIF
  66.     /* HotKey Guide */
  67.     filter:=cxFilter(hotkeyguide)
  68.     IF (errorcx:=CxObjError(filter))<>0 THEN Raise(ER_CX)
  69.     AttachCxObj(broker,filter)
  70.     sender:=cxSender(broker_mp,EVT_HOTKEY_GUIDE)
  71.     AttachCxObj(filter,sender)
  72.     translate:=cxTranslate(NIL)
  73.     AttachCxObj(filter,translate)
  74.     IF (errorcx:=CxObjError(filter))=0
  75.         ActivateCxObj(broker,1)
  76.     ELSE
  77.         Raise(ER_CX)
  78.     ENDIF
  79.     Raise(ER_NONE)
  80. EXCEPT
  81.     RETURN exception
  82. ENDPROC
  83. /**/
  84. /*"p_RemCx()"*/
  85. PROC p_RemCx() 
  86.     dWriteF(['p_RemCx()\n'],0)
  87.     IF broker THEN DeleteCxObjAll(broker)
  88.     IF broker_mp THEN DeleteMsgPort(broker_mp)
  89. ENDPROC
  90. /**/
  91.